The present invention relates to network communications and more particularly, to handling link failure and link recovery in a trunked data path.
In computer networks, a plurality of network stations are interconnected via a communications medium. For example, Ethernet is a commonly used local area network scheme in which multiple stations are connected to a single shared serial data path. These stations often communicate with a switch located between the shared data path and the stations connected to that path. Typically, the switch controls the communication of data packets on the network.
The network switch includes switching logic for receiving and forwarding frames to the appropriate destinations. One arrangement for generating a frame forwarding decision uses a direct addressing scheme, where the network switch includes a fixed address table storing switching logic for the destination addresses.
For example, a frame may be received by the network switch with header information indicating the source address and destination address of the frame. The switching logic accesses the fixed address table using the source address and destination address as lookups to find the appropriate frame forwarding information. The switch then uses this information and sends the frame to the appropriate port(s).
When all of the stations connected to the network are simultaneously operating, packet traffic on the shared serial path can be heavy with little time between packets. Additionally, due to increased network throughput requirements, increasing the speed with which data is transmitted to its destination is crucial to the overall operation of the switch.
One arrangement for increasing the speed with which data is transmitted between stations uses xe2x80x9ctrunkingxe2x80x9d, also referred to as link aggregation, to combine a number of links to form a trunk between two stations. For example, suppose two individual ports on the switch are each configured to support 100 Mb/s data transmission rates. The trunking scheme links the two ports together and transmits/receives data via these two ports, resulting in one 200 Mb/s link between the two stations.
A drawback with such a trunking scheme is that the address table must store the appropriate trunking information including the particular trunk port through which to transmit the data. That is, the address table must store information indicating whether a particular port is part of a trunk, in addition to storing information indicating which port of the trunk to transmit the data through when the data forwarding information indicates that the output port is part of a trunk. Storing this trunking information in the address table significantly increases the physical size of the address table and also significantly increases the complexity of the switching logic, thereby increasing the time spent searching for the frame forwarding information.
Additionally, when changes to the stored trunking information are required, e.g., when one or more links in a trunk fails, the address table must be correspondingly changed to ensure that the switch does not attempt to transmit data via a failed link. Alternatively, when a failed-link in a trunk returns to proper working condition, the address table must be changed to reflect that the restored link is part of the trunk once again. This process of reconfiguring the address table is time-consuming and costly, potentially resulting in network downtime.
There exists a need for a switching device that supports trunking and is able to handle a link failure without reprogramming an address table.
There is also a need for a switching device that enables trunk changes to be made after a link recovery occurs without reprogramming an address table.
These and other needs are met by the present invention, where a multiport switch is configured to support trunking. When a link in a trunked data path experiences a change in its operating status, the trunk data path is reconfigured to reflect the current operating conditions, without requiring reprogramming of an address table.
According to one aspect of the invention, a network switch is configured for controlling the communication of data frames between stations and to support trunking. The switch includes a memory device configured to store trunking information associated with ports on the multiport switch with a plurality of ports comprising active ports of a first trunk based on the trunking information. The data transmission capability from the plurality of ports in the first trunk is set based on a link status associated with each of the plurality of ports.
Another aspect of the present invention provides a method for handling changes in a trunked data path in a multiport switch that controls communication of data frames between stations and is configured to support trunking. The method includes receiving a data frame and generating data forwarding information for the data frame. The method also includes monitoring link status associated with the respective ports on the multiport switch wherein a plurality of ports comprise active ports of a first trunk. The method further includes setting data transmission capability from the plurality of ports in the first trunk based on the link status associated with each of the ports in the first trunk.
Other advantages and features of the present invention will become readily apparent to those skilled in this art from the following detailed description. The embodiments shown and described provide illustration of the best mode contemplated for carrying out the invention. The invention is capable of modifications in various obvious respects, all without departing from the invention. Accordingly, the drawings are to be regarded as illustrative in nature, and not as restrictive.